package com.cskaoyan.utils;



import org.apache.commons.dbcp.BasicDataSourceFactory;

import javax.sql.DataSource;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URL;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

/**
 * 创建日期: 2022/04/22 16:19
 *
 * @author ciggar
 */
public class DBCPUtils {

    // 数据库连接池
    static DataSource dataSource;

    static {

        try {
            Properties properties = new Properties();

            // 以后在Maven的项目中，一般不通过这种方式来读取
            // 因为以后项目经过打包之后，jar包中没有 src\\main\\resources 这个路径了，所以这种方式在jar包中运行是行不通的
//            FileInputStream fileInputStream = new FileInputStream("src\\main\\resources\\dbcp.properties");


            // 在maven的项目中，我们需要通过类加载器来找 classes路径下的文件
            // classPath = classes
            ClassLoader classLoader = DBCPUtils.class.getClassLoader();

            URL url = classLoader.getResource("dbcp.properties");


            // 获取配置文件输入流
            String path = url.getPath();
            FileInputStream fileInputStream = new FileInputStream(path);

            // 和下面这一步等价
            // InputStream inputStream = classLoader.getResourceAsStream("dbcp.properties");


            System.out.println(url);





            properties.load(fileInputStream);

            // 初始化数据库连接池 DBCP
            dataSource = BasicDataSourceFactory.createDataSource(properties);

        }catch (Exception ex) {
            ex.printStackTrace();
        }


    }



    // 获取连接
    public static Connection getConnection(){

        Connection connection = null;
        try {
            connection =   dataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return connection;

    }


}
